package pl.enigmatic.parser.xml.java.awt;

import java.awt.Font;

import org.w3c.dom.Element;

import pl.enigmatic.util.Strings;
import pl.enigmatic.util.XML;
import pl.enigmatic.parser.string.java.awt.FontConverter;
import pl.enigmatic.parser.xml.Parser;
import pl.enigmatic.parser.xml.ParsingInfo;


public class FontParser extends Parser<Font> {

	// TODO dodać custom fonts ładowane z plików

	private final FontConverter converter = new FontConverter();

	public FontParser() {
		super(Font.class, false);
	}

	@Override
	public Font parse(final ParsingInfo<Font> info) {
		Element node = info.getElement();
		String value = XML.getText(node);
		if (Strings.empty(value)) {
			String lang = node.getAttribute("name");
			String country = node.getAttribute("style");
			String variant = node.getAttribute("size");
			return converter.convert(new String[] { lang, country, variant });
		} else {
			return converter.convert(value);
		}
	}

}
